﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	[DataContract]
	public enum ГруппыВычетовПоНДФЛ
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"0463cf9f-63c9-44f3-94d6-377f97c1dd6f\", \"Представление\":\"СтандартныеНаДетей\"}")]
		СтандартныеНаДетей = 0,//Стандартные на детей
		[EnumMember(Value = "{\"Ссылка\":\"ea51a521-8770-40e1-940e-dfea58e79d15\", \"Представление\":\"Стандартные\"}")]
		Стандартные = 1,
		[EnumMember(Value = "{\"Ссылка\":\"6aeb1301-60b0-4458-9b40-db0802e42127\", \"Представление\":\"Имущественные\"}")]
		Имущественные = 2,
		[EnumMember(Value = "{\"Ссылка\":\"0ca6c3c2-0fe4-4a65-a858-c29ca4102764\", \"Представление\":\"Социальные\"}")]
		Социальные = 3,
	}
	public static partial class ГруппыВычетовПоНДФЛ_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid СтандартныеНаДетей = new Guid("7f37d694-c197-6fdd-44f3-63c90463cf9f");//Стандартные на детей
		public static readonly Guid Стандартные = new Guid("eadf0e94-e758-159d-40e1-8770ea51a521");
		public static readonly Guid Имущественные = new Guid("08db409b-e402-2721-4458-60b06aeb1301");
		public static readonly Guid Социальные = new Guid("9cc258a8-10a4-6427-4a65-0fe40ca6c3c2");
		public static ГруппыВычетовПоНДФЛ Получить(this ГруппыВычетовПоНДФЛ Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static ГруппыВычетовПоНДФЛ Получить(this ГруппыВычетовПоНДФЛ Значение, Guid Ссылка)
		{
			if(Ссылка == СтандартныеНаДетей)
			{
				return ГруппыВычетовПоНДФЛ.СтандартныеНаДетей;
			}
			else if(Ссылка == Стандартные)
			{
				return ГруппыВычетовПоНДФЛ.Стандартные;
			}
			else if(Ссылка == Имущественные)
			{
				return ГруппыВычетовПоНДФЛ.Имущественные;
			}
			else if(Ссылка == Социальные)
			{
				return ГруппыВычетовПоНДФЛ.Социальные;
			}
			return ГруппыВычетовПоНДФЛ.ПустаяСсылка;
		}
		public static byte[] Ключ(this ГруппыВычетовПоНДФЛ Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this ГруппыВычетовПоНДФЛ Значение)
		{
			switch (Значение)
			{
				case ГруппыВычетовПоНДФЛ.СтандартныеНаДетей: return СтандартныеНаДетей;
				case ГруппыВычетовПоНДФЛ.Стандартные: return Стандартные;
				case ГруппыВычетовПоНДФЛ.Имущественные: return Имущественные;
				case ГруппыВычетовПоНДФЛ.Социальные: return Социальные;
			}
			return Guid.Empty;
		}
	}
}